package com.example.demoproject.utils;

import com.example.demoproject.common.BaseResponse;
import com.example.demoproject.common.ErrorCode;

/**
 * 返回工具类
 * @author TheOutsider
 */
public class ResultUtils {

    /**
     * 请求成功时, 只接收数据
     * @param data
     * @return
     * @param <T>
     */
    public static <T> BaseResponse<T> success(T data) {
        return new BaseResponse<>(0, data, "success");
    }

    /**
     * 统一异常处理类中使用
     * 根据捕获到的异常类中的信息传入code message description
     * @param code
     * @param message
     * @param description
     * @return
     * @param <T>
     */
    public static <T> BaseResponse<T> error(int code, String message, String description){
        return new BaseResponse<T>(code, null, message, description);
    }

    /**
     * 接受错误码
     * @param errorCode
     * @return
     * @param <T>
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode){
        return new BaseResponse<>(errorCode);
    }

    /**
     * 接受错误码, 自定义message description
     * @param errorCode
     * @param message
     * @param description
     * @return
     * @param <T>
     */
    public static <T> BaseResponse<T> error(ErrorCode errorCode, String message, String description){
        return new BaseResponse<T>(errorCode.getCode(), null, message, description);
    }
}
